package com.probox.customer.api.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.probox.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 客户发票信息对象 customer_invoice
 *
 * @author zsy
 * @date 2021-07-10
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("customer_invoice")
@ApiModel(description = "客户发票信息")
public class CustomerInvoiceVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    //默认主键自增
    @TableId(value = "INVOICE_ID", type = IdType.AUTO)
    private Integer invoiceId;

    /**
     * 客户ID
     */
    @Excel(name = "客户ID")
    @ApiModelProperty(value = "客户ID")
    private Long customerId;

    /**
     * 平台ID
     */
//    @Excel(name = "平台ID")
    @ApiModelProperty(value = "平台ID")
    private Long platformUid;

    /**
     * 发票抬头 person(个人)/company(企业)
     */
    @Excel(name = "发票抬头 person(个人)/company(企业)")
    @ApiModelProperty(value = "发票抬头 person(个人)/company(企业)")
    private String invoiceTitle;

    /**
     * 公司名称/个人名称
     */
    @Excel(name = "公司名称/个人名称")
    @ApiModelProperty(value = "公司名称/个人名称")
    private String companyName;

    /**
     * 公司税号
     */
    @Excel(name = "公司税号")
    @ApiModelProperty(value = "公司税号")
    private String companyNo;

    /**
     * 发票类型 1(增值税普通发票)/2(增值税专用发票)
     */
    @Excel(name = "发票类型 1(增值税普通发票)/2(增值税专用发票)")
    @ApiModelProperty(value = "发票类型 1(增值税普通发票)/2(增值税专用发票)")
    private String invoiceType;

    /**
     * 发票载体 paper(纸质发票)/electron(电子发票)
     */
    @Excel(name = "发票载体 paper(纸质发票)/electron(电子发票)")
    @ApiModelProperty(value = "发票载体 paper(纸质发票)/electron(电子发票)")
    private String carrierType;

    /**
     * 单位电话
     */
    @Excel(name = "单位电话")
    @ApiModelProperty(value = "单位电话")
    private String companyPhone;

    /**
     * 公司地址
     */
    @Excel(name = "公司地址")
    @ApiModelProperty(value = "公司地址")
    private String companyAddress;

    /**
     * 收票人姓名
     */
    @Excel(name = "收票人姓名")
    @ApiModelProperty(value = "收票人姓名")
    private String receiverMan;

    /**
     * 收票人邮箱
     */
    @Excel(name = "收票人邮箱")
    @ApiModelProperty(value = "收票人邮箱")
    private String receiverEmail;

    /**
     * 收票人电话
     */
    @Excel(name = "收票人电话")
    @ApiModelProperty(value = "收票人电话")
    private String receiverPhone;

    /**
     * 开户银行
     */
    @Excel(name = "开户银行")
    @ApiModelProperty(value = "开户银行")
    private String bankName;

    /**
     * 银行账号
     */
    @Excel(name = "银行账号")
    @ApiModelProperty(value = "银行账号")
    private String bankAccountNo;

    /**
     * 邮政编码
     */
    @Excel(name = "邮政编码")
    @ApiModelProperty(value = "邮政编码")
    private String receiverPostCode;

    /**
     * 收票地址
     */
    @Excel(name = "收票地址")
    @ApiModelProperty(value = "收票地址")
    private String receiverAddress;

    /**
     * 数据状态 0无效/1有效
     */
    @Excel(name = "数据状态 0无效/1有效")
    @ApiModelProperty(value = "数据状态 0无效/1有效")
    private String dataStatus;

    /**
     * 默认开票信息，0非默认/1默认
     */
    @Excel(name = "默认开票信息，0非默认/1默认")
    @ApiModelProperty(value = "默认开票信息，0非默认/1默认")
    private String isDefault;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private Integer createUser;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    @ApiModelProperty(value = "修改人")
    private Long updateUser;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    /**
     * 公司省份
     */
    @Excel(name = "公司省份")
    @ApiModelProperty(value = "公司省份")
    private String companyProvince;

    /**
     * 公司城市
     */
    @Excel(name = "公司城市")
    @ApiModelProperty(value = "公司城市")
    private String companyCity;

    /**
     * 公司区域
     */
    @Excel(name = "公司区域")
    @ApiModelProperty(value = "公司区域")
    private String companyArea;

    /**
     * 收票省份
     */
    @Excel(name = "收票省份")
    @ApiModelProperty(value = "收票省份")
    private String receiverProvince;

    /**
     * 收票城市
     */
    @Excel(name = "收票城市")
    @ApiModelProperty(value = "收票城市")
    private String receiverCity;

    /**
     * 收票区域
     */
    @Excel(name = "收票区域")
    @ApiModelProperty(value = "收票区域")
    private String receiverArea;

    /**
     * 创建人名称
     */
    @Excel(name = "创建人名称")
    @ApiModelProperty(value = "创建人名称")
    private String createName;

    /**
     * 修改人名称
     */
    @Excel(name = "修改人名称")
    @ApiModelProperty(value = "修改人名称")
    private String updateName;


}
